#ifndef HASH_TABLE_H
#define HASH_TABLE_H

	#include "chaineChaineEntree.h"
	#include "pileChaineEntree.h"
	
	#define HASH_TABLE_SIZE 100
	#define CST_HASH 64
	
	typedef pChaineChaineEntreeNode hashTableIndex;
	
	hashTableIndex hashTable[HASH_TABLE_SIZE];
	
	unsigned int fctHash(char * source);
	void initHashTable();
	int existeIndexHashTable(int index);
	int existeMotClefHashTable(char * clef);
	pChaineChaineEntreeNode recupLigneHashTable(int index);
	entree consulteHashTable(char * clef);
	int entreeDejaDansBloc(char * nom);
	void ajoutEntreeHashTable(entree element);
	void entreeBloc();
	void sortieBloc();
	void majValeurEntiereConstanteEntreeBlocCourant(char * clef, int valeur);
	void majValeurBoolConstanteEntreeBlocCourant(char * clef, int valeur);
	void majValeurCharConstanteEntreeBlocCourant(char * clef, char * valeur);
	void afficheHashTable ();

#endif
